/**
 * 数组去重
 * 1.利用双层for循环
 */
// var arr = [1,3,2,3,4,2,1];
// function unique(arr){
//   // 循环前一个数
//   for(let i=0;i<arr.length;i++){
//     // 循环后一个数
//     for(let j=i+1;j<arr.length;j++){
//       // 如果前一项和后一项重复 删除后一项 修正下标
//       if(arr[i] === arr[j]){
//         arr.splice(j,1);
//         j--;
//       }
//     }
//   }
//   return arr
// }
// var res = unique(arr);
// console.log(res);


/**
 * 2.利用indexOf/lastIndexOf去重
 */
// var arr = [1,2,3,2,1,3,4];
// function unique(arr){
//   var newArr = [];
//   for(let i=0;i<arr.length;i++){
//     // 如果不存在newArr中 将添加newArr数组
//     // if(newArr.indexOf(arr[i])===-1){
//     //   // newArr.push(arr[i])
//     //   newArr[newArr.length] = arr[i]
//     // }

//     // 三目运算符
//     newArr.indexOf(arr[i])===-1?newArr.push(arr[i]):''
//   }
//   return newArr
// }
// var res = unique(arr);
// console.log(res);


/**
 * 3.利用includes方法去重
 * 判断数组元素是否存在newArr中 不存在添加
 */
// var arr = [1,2,3,NaN];
// console.log(arr.indexOf(NaN));
// console.log(arr.includes(NaN));
// var arr = [1,2,3,2,1,4];
// function unique(arr){
//   var newArr = [];
//   for(let i=0;i<arr.length;i++){
//     if(newArr.includes(arr[i])===false){
//       newArr.push(arr[i])
//     }
//   }
//   return newArr
// }
// var res = unique(arr);
// console.log(res);


/**
 * 4.forEach + indexOf/lastIndexOf/includes
 */
// var arr = [1,2,3,2,1,4];
// function unique(arr){
//   var newArr = [];
//   arr.forEach(function(item){
//     newArr.indexOf(item)===-1?newArr.push(item):''
//     // newArr.includes(item)===false?newArr.push(item):""
//   })
//   return newArr
// }
// console.log(unique(arr));

/**
 * 5.利用set集合去重
 */
// var arr = [1,2,3,3,2,1];
// var set = new Set(arr);//set成员是唯一的 不重复
// console.log(Array.from(set));
// console.log([...set]);//...拓展运算符 展开set集合成员